Modbus is a well known serial communications protocol published by Modicon® in 1979 for use with programmable logic controllers (“PLC”'s) and has become a de facto standard communications protocol in industry. Modbus is now a commonly available means of connecting industrial electronic devices. Modbus allows for communication between many devices connected to the same network, for example a system that measures temperature and humidity and communicates the results to a computer. Modbus is often used to connect a supervisory computer with a remote terminal unit (“RTU”) in supervisory control and data acquisition (“SCADA”) systems.
Versions of the Modbus protocol exist for serial port and for Ethernet and other networks that support the Internet protocol suite. The most common Modbus variants are Modbus RTU, Modbus ASCII, Modbus Plus and Modbus/TCP. Modbus RTU (binary) and Modbus ASCII are the two basic forms of the Modbus protocol. The ASCII form transmits each 8 bit byte using two ASCII characters from the ASCII character set (‘0-9’ and ‘A-F’). The RTU form transmits all bytes in binary format, i.e. each byte is transmitted as 2 four bit hexadecimal characters. making the protocol faster and more efficient. Both forms may utilize the serial RS-232/RS-485 protocols as the networking medium. Modbus Plus is a Modicon® proprietary protocol used in industrial networking systems. It uses token-passing peer-to-peer communications over a proprietary networking medium at data transfer rates of one megabit per second (high-speed passing of groups of bits within a layer). Typically the network medium is a shielded twisted-pair cable. The structure of Modbus/TCP is similar to the Modbus RTU packet except that it has an extra six-byte header and does not use the cyclic redundancy check (“CRC”). Modbus/TCP defines the packet structure and connection port for the industry standard TCP/IP protocol. Modbus/TCP retains the Modbus RTU limit of 256 bytes to a packet. A protocol variant referred to as Enhanced Modbus/TCP removes this limitation to allow a higher throughput is also utilized.
Most Modbus devices communicate over a serial EIA-485 physical layer using either Modbus RTU or Modbus ASCII. These are often referred to as multi-drop networks as all of the devices on the network are connected to the same wires. The Modbus network, as defined by the protocol, is a single master, multi-drop (more than one device) system that may support up to 247 slave devices.
Each device, intended to communicate using the Modbus protocol over a particular network, is given a unique address unique among the devices connected to the network. In serial and Modbus Plus networks only the node assigned as the master may initiate a command. A Modbus command contains the Modbus address of the device it is intended for. Only the intended device will act on the command, even though other devices might receive it (an exception is specific broadcast-able commands sent to node 0 which are acted upon but may not be acknowledged). The basic Modbus commands can instruct an RTU to change a value in one of its registers, control or read an I/O port, as well as command the device to send back one or more values contained in its registers.
As the serial and Modbus Plus protocols require each device to be configured with a unique address, as a well as other communications parameters, configuring a large Modbus network having numerous slave devices, which may be geographically disperse, is often time consuming and inefficient.